home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import os
- import gtk
- from gtk import gdk
- import gio
- import gedit
- from outputpanel import OutputPanel
- from capture import *
-
- def default(val, d):
- if val is not None:
- return val
- return d
-
-
- def capture_menu_action(action, window, node):
- panel = window.get_data('ExternalToolsPluginWindowData')._output_buffer
- panel.show()
- panel.clear()
-
- try:
- cwd = os.getcwd()
- except OSError:
- cwd = os.getenv('HOME')
-
- capture = Capture(node.command, cwd)
- capture.env = os.environ.copy()
- capture.set_env(GEDIT_CWD = cwd)
- view = window.get_active_view()
- capture.set_flags(capture.CAPTURE_BOTH)
- panel.process = capture
- input_type = node.input
- output_type = node.output
- if output_type == 'new-document':
- tab = window.create_tab(True)
- view = tab.get_view()
- document = tab.get_document()
- pos = document.get_start_iter()
- capture.connect('stdout-line', capture_stdout_line_document, document, pos)
- document.begin_user_action()
- view.set_editable(False)
- view.set_cursor_visible(False)
- elif output_type != 'output-panel' and view is not None:
- document.begin_user_action()
- view.set_editable(False)
- view.set_cursor_visible(False)
- if output_type == 'insert':
- pos = document.get_iter_at_mark(document.get_mark('insert'))
- elif output_type == 'replace-selection':
- document.delete_selection(False, False)
- pos = document.get_iter_at_mark(document.get_mark('insert'))
- elif output_type == 'replace-document':
- document.set_text('')
- pos = document.get_end_iter()
- else:
- pos = document.get_end_iter()
- capture.connect('stdout-line', capture_stdout_line_document, document, pos)
- else:
- capture.connect('stdout-line', capture_stdout_line_panel, panel)
- document.begin_user_action()
- capture.connect('stderr-line', capture_stderr_line_panel, panel)
- capture.connect('begin-execute', capture_begin_execute_panel, panel, node.name)
- capture.connect('end-execute', capture_end_execute_panel, panel, view, output_type in ('new-document', 'replace-document'))
- view.get_window(gtk.TEXT_WINDOW_TEXT).set_cursor(gdk.Cursor(gdk.WATCH))
- capture.execute()
- document.end_user_action()
-
-
- def capture_stderr_line_panel(capture, line, panel):
- panel.write(line, panel.error_tag)
-
-
- def capture_begin_execute_panel(capture, panel, label):
- panel['stop'].set_sensitive(True)
- panel.clear()
- panel.write(_('Running tool:'), panel.italic_tag)
- panel.write(' %s\n\n' % label, panel.bold_tag)
-
-
- def capture_end_execute_panel(capture, exit_code, panel, view, update_type):
- panel['stop'].set_sensitive(False)
- if update_type:
- doc = view.get_buffer()
- start = doc.get_start_iter()
- end = start.copy()
- end.forward_chars(300)
- mtype = gio.content_type_guess(data = doc.get_text(start, end))
- lmanager = gedit.get_language_manager()
- language = gedit.language_manager_get_language_from_mime_type(lmanager, mtype)
- if language is not None:
- doc.set_language(language)
-
-
- view.get_window(gtk.TEXT_WINDOW_TEXT).set_cursor(gdk.Cursor(gdk.XTERM))
- view.set_cursor_visible(True)
- view.set_editable(True)
- if exit_code == 0:
- panel.write('\n' + _('Done.') + '\n', panel.italic_tag)
- else:
- panel.write('\n' + _('Exited') + ':', panel.italic_tag)
- panel.write(' %d\n' % exit_code, panel.bold_tag)
-
-
- def capture_stdout_line_panel(capture, line, panel):
- panel.write(line)
-
-
- def capture_stdout_line_document(capture, line, document, pos):
- document.insert(pos, line)
-
-